Modular train system

ABSTRACT

Provided is a method of operating a modular train system. The method comprises determining that an approaching train is within a trigger distance from a first train segment. The train has a first velocity in a first direction along a track. The method further comprises causing the first train segment to accelerate to approximately the first velocity. The method further comprises coupling the train segment to a front end of the train while the first train segment and the train are in motion at approximately the first velocity.

BACKGROUND

The present disclosure relates generally to the field of train systems, and more particularly to modular train systems that can attach to or detach from a moving train using a single track.

Train systems are used to transport goods and/or people over a distance from a first location to a second location. The goods and/or people are loaded into train segments of the train system to be transported from the first location to the second location. Once the goods and/or people have arrived at the second location, they are unloaded from the train segments of the train system.

SUMMARY

Embodiments of the present disclosure include a method, computer program product, and system for operating a train. The method comprises determining, by a processor, that a train having at least one train segment has approached to within a trigger distance from a first train segment. The train has a first velocity in a first direction along a track. The method further comprises causing the first train segment to accelerate to approximately the first velocity. The method further comprises coupling the first train segment to a front end of the train while the first train segment and the train are in motion at approximately the first velocity.

The above summary is not intended to describe each illustrated embodiment or every implementation of the present disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawings included in the present disclosure are incorporated into, and form part of, the specification. They illustrate embodiments of the present disclosure and, along with the description, serve to explain the principles of the disclosure. The drawings are only illustrative of typical embodiments and do not limit the disclosure.

FIG. 1 illustrates a block diagram of an example modular train system, in accordance with embodiments of the present disclosure.

FIGS. 2A-2E illustrate an example of a train segment being added to an oncoming train, in accordance with embodiments of the present disclosure.

FIGS. 3A-3D illustrate an example of a train segment detaching from a moving train, in accordance with embodiments of the present disclosure.

FIGS. 4A-4E illustrate an example modular train adding a first train segment and removing a second train segment, in accordance with embodiments of the present disclosure.

FIG. 5 illustrates a flowchart of an example method for adding a train segment to a train, in accordance with embodiments of the present disclosure.

FIG. 6 illustrates a flowchart of an example method for removing a train segment from a train, in accordance with embodiments of the present disclosure.

FIG. 7 illustrates a high-level block diagram of an example computer system that may be used in implementing one or more of the methods, tools, and modules, and any related functions, described herein, in accordance with embodiments of the present disclosure.

FIG. 8 depicts a cloud computing environment, in accordance with embodiments of the present disclosure.

FIG. 9 depicts abstraction model layers, in accordance with embodiments of the present disclosure.

While the embodiments described herein are amenable to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and will be described in detail. It should be understood, however, that the particular embodiments described are not to be taken in a limiting sense. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

DETAILED DESCRIPTION

Aspects of the present disclosure relate generally to the field of train systems, and more particularly to modular train systems that are loaded and/or unloaded on a single track based on a queue. While the present disclosure is not necessarily limited to such applications, various aspects of the disclosure may be appreciated through a discussion of various examples using this context.

Train systems are used to transport cargo and/or people across distances by propelling train cars, also referred to as train segments, along tracks. Thus, a train system is made up of the train segments, which are arranged to form a train, the tracks, along which the train travels, and a remote command center, which may enable operation of the train and/or at least some of the train segments to travel along the tracks.

The tracks of the train system are generally arranged in fixed positions connecting a starting location to an ending location so that the train travels from the starting location to the ending location, thereby transporting the cargo and/or passengers from the starting location to the ending location.

In some cases, it will be desirable to collect and/or deposit cargo and/or passengers at an intervening location along the track between the starting location and the ending location. In such cases, one way to collect the cargo and/or passengers includes adding new train segments to the train. By adding new train segments to an existing train, it is possible to load the train segments prior to the arrival of the existing train at the intervening location. Similarly, one way to deposit the cargo and/or passengers includes removing train segments from the train. By removing train segments from the train, it is possible to unload the train segments after the departure of the train from the intervening location. In either case, adding and removing train segments from an existing train improves efficiency of the train because the added and removed train segments can be loaded and unloaded, respectively, without delaying the progress of the train along the track. Train systems configured to enable adding and removing train segments from an existing train are referred to herein as “modular train loading systems.”

Limitations on efficiency remain, however, in existing train systems. For example, existing trains are still required to stop at intervening locations to enable train segments to be coupled to or decoupled from the train.

Embodiments of the present disclosure may overcome the above, and other, problems by using a queue based modular train loading system. The queue based modular train loading system may be configured to detect when an existing train is approaching an intervening location and automatically accelerate additional train segments from that intervening location that are to be added to the existing train to a speed that is approximately the same as the traveling speed of the existing train and then automatically couple the additional train segments to the existing train. Similarly, the queue based modular train loading system may be configured to detect when an existing train is approaching an intervening location and automatically decouple train segments that are to be removed from the existing train and then automatically decelerate the decoupled train segments to a stop at the intervening location.

More specifically, the queue based modular train loading system described herein can operate on a single track. In other words, the additional train segments to be added to the existing train can be arranged on the same track that the existing train is traveling on. Accordingly, the additional train segments are added to the front end of the existing train. Similarly, the train segments to be removed from the existing train are removed from the rear end of the existing train and remain on the same track that the existing train is traveling on. By operating on a single track, the queue based modular train loading system described herein improves efficiency because it does not require additional infrastructure, such as parallel sets of tracks to accommodate train segments during loading and/or unloading cargo and/or passengers.

By way of example, a passenger train having multiple train segments begins a journey at Station A to travel to Station B. The tracks on which the passenger train is traveling pass through Station C. Additional passengers who desire to travel from Station C to Station B can board additional train segments arranged at Station C prior to the arrival of the passenger train. As the passenger train approaches Station C, the additional train segments are accelerated along the track ahead of the passenger train to a speed that approximately matches the speed of the passenger train such that, when the passenger train catches up to the additional train segments, the passenger train and the additional train segments are traveling at approximately the same speed. When the passenger train catches up to the additional train segments, the additional train segments are coupled to the front end of the passenger train while both the passenger train and the additional train segments are traveling at approximately the same speed, and the additional train segments become part of the passenger train. In this example, the passenger train does not slow down prior to catching up to the additional train segments.

Additionally, or alternatively, passengers on the passenger train traveling from Station A to Station B may desire to disembark the train at Station C. As the passenger train approaches Station C, these passengers move to one or more train segments at the rear end of the passenger train that will be removed from the passenger train at Station C. Prior to arriving at Station C, the train segments that will be removed from the passenger train are decoupled from the rear end of the passenger train and continue to travel on the same track as the passenger train. The removed train segments are then decelerated so as to arrive at Station C after the passenger train has passed through Station C.

Additionally, or alternatively, in some embodiments, additional train segments can be added from Station C. Moreover, the same capability applies to any number of intervening stations between Station A and Station B. More specifically, additional train segments can be added to and/or removed from the train at any number of intervening stations between Station A and Station B.

Embodiments of the present disclosure include a train system having train segments that are capable of autonomous acceleration and/or deceleration. For example, the train segments may include electric motors that can be controlled to increase and/or decrease the speed of the train segments. In some embodiments, each train segment may include one or more of such electric motors. In some embodiments, some, but not all, train segments may include such electric motors. The train segments may be further configured to autonomously couple to and/or decouple from other train segments. For example, at least some of the train segments may include electric motors that can be controlled to operate mechanical latches to couple and/or decouple train segments. The train segments may be further configured to autonomously close doors prior to acceleration and/or open doors after deceleration. For example, at least some of the train segments may include electric motors that can be controlled to close and/or to open doors on the train segments. Furthermore, at least some of the train segments may include electric motors that can be controlled to operate mechanical latches to lock and/or unlock closed doors.

In some embodiments of the present disclosure, at least some of the train segments may be configured to collect, store, process, and transmit data. For example, at least some of the train segments may be configured to transmit data to and receive data from other train segments of the train system and/or a command center of the train system. Some of the data may be transmitted and received, for example, via an infrared transmitter/receiver combination. Such communication between train segments, either directly or by way of the operating system, may be useful to facilitate coordinated movements of the train segments. In some embodiments of the present disclosure, the operating system of the train system may also be configured to collect, store, process, and transmit data.

In some embodiments of the present disclosure, acceleration of a train segment may be initiated based on the train segment's reception of a signal that indicates that an approaching train has approached to within a certain distance (also referred to herein as a “trigger distance”). For example, such a signal may include data indicating a speed of the approaching train and/or a distance of the approaching train from the train segment. Such data may be processed to generate a target time for the train segment to begin acceleration, a target rate for the train segment to accelerate, and/or a target velocity for the train segment to reach in order to facilitate a smooth coupling with the approaching train.

In some embodiments of the present disclosure, the doors of the train segment may be closed based on the train segment's reception of the signal that indicates that an approaching train has approached to within a certain distance. In such embodiments, the train doors are closed prior to acceleration of the train segment and closing may be preceded by transmission of physical warnings to facilitate safe departure of the train segment.

In some embodiments of the present disclosure, coupling of a train segment to the approaching train may be initiated based on the train segment's reception of a signal (or signals) that indicates that the train segment is within a certain distance of the approaching train and that the train segment is traveling at approximately the same velocity as the approaching train in order to facilitate a smooth coupling with the approaching train.

In some embodiments of the present disclosure, decoupling of a train segment from a train may be initiated based on the train segment's reception of a signal that indicates that the train segment has approached to within a certain distance of a target station (also referred to herein as a “threshold distance”). Such a signal may include data indicating a speed of the train segment and/or a distance of the train segment from the target station to facilitate a smooth arrival of the train segment at the target station.

In some embodiments of the present disclosure, deceleration of the train segment may be initiated based on the train segment's reception of a signal that indicates that the train segment has been decoupled from the train. In response to receiving such a signal, the data indicating the speed of the train segment and/or the distance of the train segment from the target station may be processed to generate a target time for the train segment to arrive at the target station and/or a target rate of deceleration for the train segment in order to facilitate a smooth arrival of the train segment at the target station.

In some embodiments of the present disclosure, the doors of the train segment may be opened based on the train segment's reception of a signal that indicates that the train segment has arrived at the target station and has come to a complete stop to facilitate safe arrival of the train segment.

In some embodiments of the present disclosure, at least some of the train segments may be configured to sense approaching objects. For example, a train segment that is to be coupled to the front end of an approaching train may include a proximity sensor. In response to detecting with the proximity sensor an approaching train segment, for example, the train segment may be configured to increase, decrease, or maintain speed in order to increase, decrease, or maintain a given distance from the approaching train segment. Additionally, or alternatively, in response to detecting an approaching train segment, the train segment may be configured to couple to the approaching train segment.

In some embodiments of the present disclosure, the train system may further include location sensors arranged at locations along the track. Each of the location sensors is configured to detect the presence of a train segment at the locations and transmit a signal indicating the presence of the train segment to the operating system. The operating system may be configured to process the data of the signals to map a location of the train segment on the tracks. Additionally, the operating system may be configured to process data of the signals to determine a velocity or an approximate velocity of the train segment.

In some embodiments of the present disclosure, at least some of the train segments of the train system are connected to one or more remote computers (e.g., cloud-based computing). The train segments may be configured to retrieve information remotely to determine when the train segments should accelerate, decelerate, couple, decouple, open, and close. For example, the train system may operate the train segments based on a train schedule, and the train schedule may be uploaded to a cloud device. Using the train schedule, the train system may determine when an approaching train will approach within a given distance of a train segment, and in response, determine when doors of the train segment will be closed, when the train segment will begin to accelerate, and/or when the train segment will be coupled to the approaching train. Similarly, using the train schedule, the train system may determine when a train will approach within a given distance of a target station, and in response, determine when a train segment will decouple from the train, when the train segment will begin to decelerate, when the train segment will arrive at the target station, and/or when the doors of the train segment will be opened.

It is to be understood that the aforementioned advantages are example advantages and should not be construed as limiting. Embodiments of the present disclosure can contain all, some, or none of the aforementioned advantages while remaining within the spirit and scope of the present disclosure.

Turning now to the figures, FIG. 1 illustrates a block diagram of an example modular train system 100, in accordance with embodiments of the present disclosure. The example modular train system 100 includes a first train segment 102, a second train segment 104, one or more remote sensors 106, and a command center device 140.

Consistent with various embodiments, the first train segment 102 may include, and the command center device 140 may be, a computer system. Each of the first train segment 102 and the command center device 140 may include one or more processors/controllers 112, 142 and one or more memories 120, 144, respectively.

The first train segment 102, the second train segment 104, the remote sensors 106, and the command center device 140 may be configured to communicate with each other. For example, the first train segment 102 and the command center device 140 may communicate through an internal or external network interface 118, 148. The network interfaces 118, 148 may be, e.g., modems or network interface cards. For example, the network interfaces 118, 148 may enable the first train segment 102 and the command center device 140 to communicate with each other using a direct communication channel (e.g., Bluetooth) or via a network (e.g., network 150). Similarly, the first train segment 102 may be configured to communicate with the second train segment 104 and/or the remote sensors 106 using a direct communication channel and/or via a network.

The first train segment 102, the second train segment 104, the remote sensors 106, and/or the command center device 140 may be equipped with a display or monitor. Additionally, the first train segment 102, the second train segment 104, the remote sensors 106, and/or the command center device 140 may include optional input devices (e.g., a keyboard, mouse, scanner, or other input device), and/or any commercially available or custom software (e.g., browser software, communications software, server software, natural language processing software, search engine and/or web crawling software, filter modules for filtering content based upon predefined parameters, etc.). In some embodiments, the command center device 140 may be a server, desktop computer, laptop computer, or hand-held device.

The first train segment 102, the second train segment 104, the remote sensors 106, and/or the command center device 140 may be distant from each other and communicate over a network 150. In some embodiments, the network 150 can be implemented using any number of any suitable communications media. For example, the network 150 may be a wide area network (WAN), a local area network (LAN), the Internet, or an intranet. In certain embodiments, one or more of the first train segment 102, the second train segment 104, the remote sensors 106, and/or the command center device 140 may be local to each other and communicate via any appropriate local communication medium. For example, the first train segment 102 and the remote sensors 106 may communicate using a local area network (LAN), one or more hardwire connections, a wireless link or router, or an intranet. In some embodiments, the first train segment 102, the second train segment 104, the remote sensors 106, and/or the command center device 140 may be communicatively coupled using a combination of one or more networks and/or one or more local connections. For example, the remote sensors 106 may be hardwired to the command center device 140 (e.g., connected with an Ethernet cable) while the first train segment 102 may communicate with the command center device 140 using the network 150 (e.g., over the Internet).

In some embodiments, the network 150 may be a telecommunication network. The telecommunication network may include one or more cellular communication towers, which may be a fixed-location transceiver that wirelessly communicates directly with a mobile communication terminal (e.g., train segments 102, 104). The wireless communications links may include, for example, shortwave, high frequency, ultra-high frequency, microwave, wireless fidelity (Wi-Fi), Bluetooth technology, global system for mobile communications (GSM), code division multiple access (CDMA), second-generation (2G), third-generation (3G), fourth-generation (4G), fifth-generation (5G), or any other wireless communication technology or standard to establish a wireless communications link.

In some embodiments, the network 150 can be implemented within a cloud computing environment, or using one or more cloud computing services. Consistent with various embodiments, a cloud computing environment may include a network-based, distributed data processing system that provides one or more cloud computing services. Further, a cloud computing environment may include many computers (e.g., hundreds or thousands of computers or more) disposed within one or more data centers and configured to share resources over the network 150.

In some embodiments of the present disclosure, the second train segment 104 may be substantially similar to the first train segment 102. In such embodiments, the following description of the first train segment 102 also applies to the second train segment 104. In alternative embodiments, however, the second train segment 104 may have greater or lesser complexity than the first train segment 102, components other than or in addition to those shown in the first train segment 102 may be present, and the number, type, and configuration of such components may vary.

The first train segment 102 includes one or more controllers 112 (e.g., processors), one or more sensors 114, a GPS module 116, a network interface 118, a memory 120, one or more motors/engines 128, an energy storage/transmission device 130, one or more door mechanisms 132, one or more latch mechanisms 134, one or more coupling mechanisms 136, and one or more brake mechanisms 138. The controllers 112 may be configured to execute program instructions to perform one or more of the methods described herein (e.g., methods 500, and 600). The sensors 114 may be configured to collect and transmit data to enable and/or assist the controllers 112 in performing one or more of the methods described herein.

For example, the controllers 112 may be configured to identify an upcoming acceleration event, determine a target rate of acceleration for the first train segment 102, and effectuate acceleration of the first train segment 102 at the target rate. In the context of the present example, the sensors 114 may include any number of sensors to enable and/or assist in acceleration of the first train segment 102 and/or detection of an acceleration event. For example, the sensors 114 may include proximity sensors (e.g., LIDAR) that enable the first train segment 102 to autonomously move within a coupling range of another train segment without crashing into it. In some embodiments, the sensors 114 include sensors for detecting an upcoming acceleration event. For example, the sensors 114 may include an image sensing device (e.g., a camera) that can detect the presence of an approaching train segment.

The GPS module 116 is configured to determine a location of the first train segment 102 using satellite navigation. Any suitable satellite navigation technology may be used, including, without limitation, the global positioning system (GPS), the GLObal NAvigation Satellite System (GLONASS), the BeiDou Navigation Satellite System (BDS), the Galileo navigation system, and/or any other satellite navigation system. In some embodiments, the GPS module 116 can use a combination of multiple satellite navigation technologies to determine a location of the first train segment 102. In some embodiments, the first train segment 102 may utilize one or more other location detection devices in addition to, or instead of, the GPS module 116. For example, the first train segment 102 may utilize location markers placed along the track on which the first train segment 102 is to operate, and the first train segment 102 may utilize these location markers to determine its location. As would be understood by a person of ordinary skill in the art, any type or combination of location identification technologies that are not otherwise inconsistent with the present disclosure may be utilized.

The motors/engines 128 are configured to convert one form of energy into mechanical energy. In some embodiments, the motors/engines 128 are configured for automated operation. At least some of the motors/engines 128 of the first train segment 102 can be electrically coupled to the energy storage/transmission device 130 to receive energy from the energy storage/transmission device 130. Additionally, at least some of the motors/engines 128 can also be operably coupled to at least one of the door mechanisms 132, the latch mechanisms 134, the coupling mechanisms 136, and the brake mechanisms 138 to transfer converted energy thereto. Alternatively, the door mechanisms 132, the latch mechanisms 134, the coupling mechanisms 136, and the brake mechanisms 138 may include their own motors/engines as mechanism components.

At least one of the motors/engines 128 of the first train segment 102 is used to propel the first train segment 102 along the tracks of the train system 100. This motor/engine 128 can be an electrical motor, a combustion motor, a pneumatic motor, or any other type or combination of types of motors that is not otherwise inconsistent with the present disclosure. The motor/engine 128 is operably coupled to the energy storage/transmission device 130 to receive energy therefrom. Accordingly, the energy storage/transmission device 130 is configured to store and transmit energy at least to the motor/engine 128. Thus, the energy storage/transmission device 130 is configured to store and transmit the type of energy that the motor/engine 128 is configured to utilize. For example, the energy storage/transmission device 130 may include electrical energy storage devices (e.g., batteries) that store electrical energy.

The one or more door mechanisms 132 are configured to open and/or close doors of the first train segment 102. In some embodiments, the door mechanisms 132 are configured for automated operation. Any suitable door mechanism may be utilized. For example, in some embodiments, the first train segment 102 uses a sliding door system that slides doors of the first train segment 102 to opened or closed positions. In such embodiments, the door mechanisms 132 may include one or more rollers and tracks (e.g., a rack and pinion). While the use of a sliding door system is described herein, this is for illustrative purposes only. Any door system (e.g., folding, pivoting, etc.) otherwise consistent with this disclosure is contemplated. In some embodiments, the door mechanisms 132 may be operably coupled to the energy storage/transmission device 130 to receive energy to operate the mechanism. In such embodiments, the door mechanisms 132 may include motors as components of the mechanisms. In other embodiments, the door mechanisms 132 may be operably coupled to the motors 128 to utilize the mechanical energy generated by the motors 128 to operate the mechanism.

The one or more latch mechanisms 134 are configured to latch and/or unlatch closed doors of the first train segment 102. In some embodiments, the latch mechanisms 134 are configured for automated operation. Any suitable latch mechanism may be utilized. For example, in some embodiments, the first train segment 102 uses a rotating hook system, in which a hook is rotated to engage and disengage a mating receiver, to latch and unlatch the closed doors of the first train segment 102. In such embodiments, the latch mechanisms 134 may include one or more rockers operably coupled to the motors 128 such that mechanical energy generated by the motors 128 can be utilized to latch and unlatch the doors. Alternatively, the latch mechanisms 134 may include a motor as a component of the mechanism that is operably coupled to the energy storage/transmission device 130 to receive energy therefrom to operate the mechanism. In some embodiments of the present disclosure, the first train segment 102 may utilize a latch mechanism 134 that is not operated by mechanical energy, and therefore is not operably connected to a motor. For example, in some embodiments, the first train segment 102 may utilize a magnetic door latching system, which utilizes electrical energy to operate magnets to latch and unlatch the closed doors of the first train segment 102. In such embodiments, the latch mechanisms 134 may be operably connected to the energy storage/transmission device 130. While the use of a rotating hook system and a magnetic door latching system are described herein, this is for illustrative purposes only. Any latching mechanism or system otherwise consistent with this disclosure is contemplated.

The one or more coupling mechanisms 136 are configured to couple the first train segment 102 to and/or decouple the first train segment 102 from another train segment. In some embodiments, the coupling mechanisms 136 are configured for automated operation. For example, the one or more coupling mechanisms 136 may include a multi-function railway coupler. In some embodiments, the coupling mechanisms 136 are operably coupled to the motors 128 such that mechanical energy generated by the motors 128 can be utilized to couple and/or decouple the first train segment 102. Alternatively, the coupling mechanisms 136 may include a motor as a component of the mechanism that is operably coupled to the energy storage/transmission device 130 to receive energy therefrom to operate the mechanism. While the use of a multi-function railway coupler is described herein, this is for illustrative purposes only. Any coupling mechanism or system otherwise consistent with this disclosure is contemplated.

The one or more brake mechanisms 138 are configured to decelerate the first train segment 102. In some embodiments, the brake mechanisms 138 are configured for automated operation. Any suitable brake mechanism may be utilized. For example, the brake mechanisms 138 may include a pneumatic brake system or a clasp brake system. In some embodiments, the brake mechanisms 138 are operably coupled to the motors 128 such that mechanical energy generated by the motors 128 can be utilized to operate the brake mechanisms 138 of the first train segment 102. Alternatively, the brake mechanisms 138 may include a motor as a component of the mechanism that is operably coupled to the energy storage/transmission device 130 to receive energy therefrom to operate the mechanism. While the use of a pneumatic brake system or a clasp brake system is described herein, this is for illustrative purposes only. Any brake mechanism or system otherwise consistent with this disclosure is contemplated.

The memory 120 includes one or more applications 122, one or more maps 124, and a schedule 126. Each of the applications 122 includes one or more modules (e.g., made up of program code/instructions) that cause the controllers 112 to perform the methods described herein. For example, the applications 122 may include program instructions that cause the controllers 112 to: monitor for an upcoming acceleration event; determine a target time of departure and target rate of acceleration once the upcoming acceleration event is detected; and send control signals to the door mechanisms 132, the latch mechanisms 134, and the motors 128 to close the doors prior to the target time of departure, latch the closed doors prior to the target time of departure, and accelerate the first train segment 102 at the target rate of acceleration at the target time of departure.

The maps 124 include one or more maps detailing the locations of tracks, stations, and remote sensors of the train system 100. The maps 124 may be used in conjunction with the schedule 126, which establishes when the first train segment 102 is to be present at a given location, and when a train is to arrive at the given location. The schedule 126 may be set by a user, or it may be received from the command center device 140.

The command center device 140 includes a processor 142, a memory 144, a GPS module 146, and a network interface 148. As discussed herein, the command center device 140 may be configured to communicate with the first train segment 102 via a network 150. The command center device 140 may send data to the first train segment 102 regarding upcoming acceleration events. For example, the command center device 140 may send location information for a train to which the first train segment 102 will be coupling, collected using the GPS module 146, to the first train segment 102. The first train segment 102 may receive the location data of the train, and based on the location data, may determine when the train will meet up with the first train segment 102 (e.g., based on the first train segment's current location and movement speed, based on an ETA sent by the remote user device 140 utilizing a navigation application, etc.). The first train segment 102 may ensure that it is in a proper location and traveling at a proper speed by the time the train meets up with the first train segment 102.

In some embodiments of the present disclosure, the memory 144 may be substantially similar to the memory 120. In such embodiments, the description of the memory 120 also applies to the memory 144. In alternative embodiments, however, the memory 144 may have greater or lesser complexity than the memory 120, components other than or in addition to those shown in the memory 120 may be present, and the number, type, and configuration of such components may vary.

The remote sensors 106 include any sensors communicatively coupled to, but not disposed on, the first train segment 102. Such a sensor may include Internet of Things (IoT) devices, such as IoT cameras. The remote sensors 106 may collect data that is used by the command center device 140 and/or the first train segment 102 to detect an acceleration event, determine a target time to begin accelerating, determine a target rate of acceleration, or determine a target speed to accelerate to. For example, the remote sensors 106 may be motion sensors that can detect the presence of a train that is approaching the location of the first train segment 102. In these embodiments, the remote sensors 106 may transmit the presence of the train to the command center device 140 and/or the first train segment 102 so that the first train segment 102 can determine a target time to begin accelerating, determine a target rate of acceleration, or determine a target speed to accelerate to.

While FIG. 1 illustrates a modular train system 100 with a single command center device 140 and two train segments 102, 104, suitable computing environments for implementing embodiments of this disclosure may include any number of command center devices and train segments. The various models, modules, systems, and components illustrated in FIG. 1 may exist, if at all, across a plurality of host devices and remote devices.

It is noted that FIG. 1 is intended to depict the representative major components of an exemplary autonomous modular train system 100. In some embodiments, however, individual components may have greater or lesser complexity than as represented in FIG. 1, components other than or in addition to those shown in FIG. 1 may be present, and the number, type, and configuration of such components may vary.

Referring now to FIGS. 2A-2E, illustrated is an example use case of a modular train system 200 in accordance with embodiments of the present disclosure. FIGS. 2A-2E are sequential such that the circumstances depicted in FIG. 2A occur prior to the circumstances depicted in FIG. 2B, and so on. In the illustrated example, a first train segment 204 (also referred to herein as a “joining train segment”) is present at a given location, for example, a train station 208 along a track 212. In some embodiments of the present disclosure, the first train segment 204 may be substantially similar to the first train segment 102 described above with reference to FIG. 1. As shown in FIGS. 2A-2E, the track 212 is a single track. In other words, the track 212 is only wide enough to allow train segments to travel along the track 212 in a single-file arrangement. Accordingly, the track 212 is configured such that train segments can only travel in one travel direction 216 at a time.

While the first train segment 204 is stopped at the train station 208, as shown in FIG. 2A, it is possible for cargo to be loaded onto and/or unloaded from the first train segment 204 and/or for passengers to board and/or disembark from the first train segment 204.

As shown in FIG. 2B, the modular train system 200 further includes a remote sensor 220 arranged to sense the presence of a train 224 (also referred to herein as an “approaching train”) that is traveling along the track 212 toward the train station 208. In some embodiments of the present disclosure, the remote sensor 220 may be substantially similar to the remote sensors 106 described above with reference to FIG. 1. When the remote sensor 220 senses the presence of the approaching train 224, the remote sensor 220 sends a signal to a command center device (such as command center device 140 shown in FIG. 1), which indicates an acceleration event to the joining train segment 204. The signal may include data related to the travel characteristics of the approaching train 224. For example, the signal may include data which indicates the rate of speed of the approaching train 224 and a location of the approaching train 224. In some embodiments, the remote sensor 220 may send the signal directly to the joining train segment 204 instead of, or in addition to, sending the signal to the command center device. In either case, the data conveyed by the signal is used to determine a target time for the joining train segment 204 to depart from the train station 208, a target rate of acceleration of the joining train segment 204, and a target speed of the joining train segment 204.

In some embodiments, the joining train segment 204 may be configured such that, upon receiving the signal indicating the acceleration event, the joining train segment 204 automatically emits a sensory indicator to alert persons on or near the joining train segment 204 that an acceleration event has been indicated, and the joining train segment 204 will soon begin accelerating. Additionally, or alternatively, the joining train segment 204 may be configured such that, upon receiving the signal indicating the acceleration event, doors of the joining train segment 204 are automatically closed. In embodiments wherein the joining train segment 204 is configured to both emit a sensory indicator and close the doors, the closing of the doors is delayed so as to follow the emission of the sensory indicator to permit people to react accordingly.

As shown in FIG. 2C, after the approaching train 224 has passed the remote sensor 220 and the corresponding signal has been sent to the joining train segment 204, but before the approaching train 224 has reached the train station 208, the joining train segment 204 begins to accelerate away from the train station 208 in the travel direction 216. The time at which the joining train segment 204 begins to accelerate away from the train station 208 may be the target time, which is determined based on the data conveyed by the signal from the remote sensor 220. Additionally, the rate at which the joining train segment 204 accelerates away from the train station 208 may be determined, at least in part, based on the data conveyed by the signal from the remote sensor 220.

As shown in FIG. 2D, by the time the approaching train 224 has reached the train station 208, the joining train segment 204 has departed from the train station 208 and is in the process of accelerating to a speed that is approximately the same as the speed at which the approaching train 224 is traveling. More specifically, the rate of acceleration of the joining train segment 204 may be calculated based on a safe rate for the cargo and/or passengers inside the joining train segment 204. For example, if the joining train segment 204 is carrying passengers, the rate of acceleration must be one that will not cause undue stress or discomfort for the passengers. Additionally, the rate of acceleration is one that results in the joining train segment 204 traveling at approximately the same speed as the approaching train 224 by the time the approaching train 224 catches up to the joining train segment 204.

As shown in FIG. 2E, after the approaching train 224 has passed the train station 208, it catches up to the joining train segment 204 such that the front end of the approaching train 224 is positioned to couple to the rear end of the joining train segment 204. The front end and the rear end are determined based on the travel direction. In the context of the present disclosure, the front end is that which leads the train segment in the direction of travel, and the rear end is opposite the front end and follows the train segment in the direction of travel. When the approaching train 224 catches up to the joining train segment 204, the two are traveling at approximately the same speed. Accordingly, the approaching train 224 does not collide with the joining train segment 204, but is positioned so as to travel immediately behind it.

In some embodiments, sensors (such as sensors 114 shown in FIG. 1) on at least one of the approaching train 224 and the joining train segment 204 may be used to assist in positioning the approaching train 224 and the joining train segment 204 in the relative positions shown in FIG. 2E, namely, such that the two are nearly touching one another and are traveling at approximately the same speed but do not collide with one another. In some embodiments, the approaching train 224 and the joining train segment 204 may communicate with each other to coordinate during the coupling process (e.g., to ensure that their speeds allow for a safe coupling). This may include either, or both, the approaching train 224 and the joining train segment 204 periodically (or continuously) monitoring and adjusting their speed during the coupling process. When the approaching train 224 and the joining train segment 204 are positioned as shown in FIG. 2E, the joining train segment 204 may be coupled to the approaching train 224. As discussed above, the joining train segment 204 may automatically couple to the approaching train 224. Once the joining train segment 204 is coupled to the approaching train 224, it becomes part of the approaching train 224.

FIGS. 2A-2E illustrate how the train system 200 can be used to enable a joining train segment 204 to be loaded prior to the arrival of the approaching train 224, so that the approaching train 224 does not need to stop, and may not even need to slow down, to collect the cargo and/or passengers from the train station 208. Additionally, FIGS. 2A-2E illustrate how this can be achieved on a single track 212, without the need for additional space and infrastructure.

FIGS. 2A-2E illustrate an example use of the modular train system 200 in which the joining train segment 204 is a single train segment and the approaching train 224 is made up of a single train segment. In alternative embodiments, however, the joining train segment 204 may be made up of more than one train segment and/or the approaching train 224 may be made up of more than one train segment.

Referring now to FIGS. 3A-3D, illustrated is an example use case of a modular train system 300 in accordance with some embodiments of the present disclosure. FIGS. 3A-3D are sequential such that the circumstances depicted in FIG. 3A occur prior to the circumstances depicted in FIG. 3B, and so on. In the illustrated example, a second train segment 328 (also referred to herein as a “detaching train segment”) is one train segment of a train 324. In some embodiments of the present disclosure, the second train segment 328 may be substantially similar to the first train segment 102 described above with reference to FIG. 1. More specifically, the detaching train segment 328 is the last train segment of the train 324, meaning that it is arranged at the rear end of the train 324. Accordingly, the second train segment 328 is traveling at the same speed as the train 324 along the same single track 312 in the same travel direction 316.

As shown in FIG. 3A, the modular train system 300 further includes a remote sensor 320 arranged to sense the presence of the train 324 along the track 312. In some embodiments of the present disclosure, the remote sensor 320 may be substantially similar to the remote sensors 106 described above with reference to FIG. 1. When the remote sensor 320 senses the presence of the train 324, the remote sensor 320 sends a signal to a command center device (such as command center device 140 shown in FIG. 1), which indicates a deceleration event to the detaching train segment 328. The signal may include data related to the travel characteristics of the train 324 and a location of the train station 308 which the train 324 is approaching. In some embodiments, the remote sensor 320 may send the signal directly to the detaching train segment 328 instead of, or in addition to, sending the signal to the command center device. Additionally, or alternatively, the remote sensor 320 may send the signal to the train 324 instead of, or in addition to, sending the signal to the command center device and/or the detaching train segment 328. In any case, the data conveyed by the signal is used to determine a target rate of deceleration of the detaching train segment 328 and a target time for the detaching train segment 328 to arrive at the train station 308.

In some embodiments, the detaching train segment 328 may be configured to decouple itself from the train 324. In some embodiments, the train 324 may be configured to decouple the detaching train segment 328 from itself. In some embodiments, the detaching train segment 328 and the train 324 may be configured to cooperate to decouple the detaching train segment 328 from the train 324. Accordingly, the remote sensor 320 may be configured to send the signal to whichever of the train 324 and the detaching train segment 328 is configured to effectuate the decoupling of the detaching train segment 328 from the train 324.

In some embodiments, the detaching train segment 328 may be configured such that, upon receiving the signal indicating the deceleration event, the detaching train segment 328 automatically emits a sensory indicator to alert persons on or near the detaching train segment 328 that a deceleration event has been indicated, and the detaching train segment 328 will soon begin decelerating. In some embodiments, in which the train 324 is transporting passengers, the sensory indicator may alert persons wishing to disembark the train 324 at the train station 308 that they should move to the detaching train segment 328. In such embodiments, the decoupling of the detaching train segment 328 is delayed relative to the emission of the sensory indicator so as to permit people to react accordingly.

As shown in FIG. 3B, prior to arriving at the train station 308, the detaching train segment 328 is decoupled from the train 324. Once decoupled from the train 324, the detaching train segment 328 can begin to decelerate so as to come to a stop at the train station 308, while the train 324 is free to continue to travel in the travel direction 316 along the track 312 without having to stop, or possibly even slow down, at the train station 308. The time at which the detaching train segment 328 decouples from the train 324, the time at which the detaching train segment 328 begins to decelerate, and/or the rate at which the detaching train segment 328 decelerates may be determined, at least in part, based on the data conveyed by the signal from the remote sensor 320. For example, if the train 324 is traveling at a faster speed, the detaching train segment 328 may need to decouple from the train 324 earlier, begin decelerating earlier, and/or decelerate at a higher rate to arrive safely at the train station 308.

As shown in FIGS. 3C and 3D, the detaching train segment 328, the detaching train segment 328 has arrived at the train station 308, while the train 324 has continued to travel in the travel direction 316 along the track 312. The detaching train segment 328 may be configured to receive a signal indicating that it has come to a complete stop at the train station 308 and it is now safe to begin unloading cargo and/or passengers. In such embodiments, in response to reception of the signal, the detaching train segment 328 may be configured to emit a sensory signal indicating that the doors of the detaching train segment 328 will be opening. Additionally, or alternatively, in response to reception of the signal, the detaching train segment 328 may be configured to automatically unlock the doors and/or open the doors.

FIGS. 3A-3D illustrate how the train system 300 can be used to enable a detaching train segment 328 to be unloaded after the train 324 has passed through the train station 308, so that the train 324 does not need to stop, and may not even need to slow down, to deliver the cargo and/or passengers to the train station 308. Additionally, FIGS. 3A-3D illustrate how this can be achieved on a single track 312, without the need for additional space and infrastructure.

FIGS. 3A-3D illustrate an example use of the modular train system 300 in which the detaching train segment 328 is a single train segment and the train 324 is made up of a single train segment. In alternative embodiments, however, the detaching train segment 328 may be made up of more than one train segment and/or the train 324 may be made up of more than one train segment.

Referring now to FIGS. 4A-4E, illustrated is an example use case of a modular train system 400 in accordance with embodiments of the present disclosure. FIGS. 4A-4E are sequential such that the circumstances depicted in FIG. 4A occur prior to the circumstances depicted in FIG. 4B, and so on. In the illustrated example, a first train segment 404 is a joining train segment substantially similar to the joining train segment 204 discussed above with reference to FIGS. 2A-2E, a second train segment 428 is a detaching train segment substantially similar to the detaching train segment 328 discussed above with reference to FIGS. 3A-3D, and a train 424 is substantially similar to the approaching train 224 and the train 324 discussed above with reference to FIGS. 2A-3D. Accordingly, FIGS. 4A-4E illustrate how the modular train system 400 is configured to enable a joining train segment 404 to be loaded prior to the arrival of the approaching train 424 and enable a detaching train segment 428 to be unloaded after the train 424 has passed the train station 408, so that the train 424 does not need to stop, and may not even need to slow down, to collect cargo and/or passengers from and deliver cargo and/or passengers to the train station 408.

As shown in FIG. 4A, the joining train segment 404 is located at the train station 408 prior to the arrival of a train. During this time prior to the arrival of the train 424, as discussed above with respect to the joining train segment 204, it is possible for cargo to be loaded onto and/or unloaded from the joining train segment 404 and/or for passengers to board and/or disembark from the joining train segment 404.

As shown in FIG. 4B, a remote sensor 420 detects the presence of approaching train 424, which includes the detaching train segment 428, traveling toward the train station 408 on the track 412 in the travel direction 416. As discussed above with respect to the remote sensor 220, when the remote sensor 420 senses the presence of the approaching train 424, the remote sensor 420 sends a signal which indicates an acceleration event to the joining train segment 404. Additionally, as discussed above with respect to the remote sensor 320, when the remote sensor 420 senses the presence of the train 424, the remote sensor 420 also sends a signal which indicates a deceleration event to the detaching train segment 428. In some embodiments, the remote sensor 420 may send only one signal that is received by both the joining train segment 404 and the detaching train segment 428. In some embodiments, the remote sensor 420 may be a plurality of remote sensors.

As shown in FIG. 4C, in response to receiving the signal, the joining train segment 404 departs the train station 408 prior to the arrival of the train 424. Additionally, in response to receiving the signal, the detaching train segment 428 is decoupled from the train 424 and begins decelerating prior to arriving at the train station 408.

As shown in FIG. 4D, the joining train segment 404, which has accelerated away from the train station 408, is coupled to the front end of the train 424, and the detaching train segment 428, which has been decoupled from the rear end of the train 424, decelerates to arrive at the train station 408. As shown in FIG. 4E, once the detaching train segment 428 has arrived at the train station 408, as discussed above with respect to the detaching train segment 328, it is possible for cargo to be loaded onto and/or unloaded from the detaching train segment 428 and/or for passengers to board and/or disembark from the detaching train segment 428. Each of the operations illustrated in FIGS. 4A-4E and described above occurs on the single track 412.

FIGS. 4A-4E illustrate an example use of the modular train system 400 in which each of the joining train segment 404, the detaching train segment 428, and the train 424 is made up of a single train segment. In alternative embodiments, however, any or all of the joining train segment 404, the detaching train segment 428, and the train 424 may be made up of more than one train segment.

Referring now to FIG. 5, illustrated is a flowchart of an example method 500 for operating a modular train system such as, for example, modular train system 200 described above with reference to FIGS. 2A-2E and/or modular train system 400 described above with reference to FIGS. 4A-4E, in accordance with embodiments of the present disclosure. The method 500 may be performed by hardware, firmware, software executing on a processor, or any combination thereof. For example, any or all of the steps of the method 500 may be performed by one or more controllers (e.g., a processor) embedded in the modular train system.

The method 500 may begin at step 504, wherein it is determined that a train has approached to within a trigger distance from a first train segment. The train has a first velocity in a first direction along a track. Determining that the train has approached to within a trigger distance from the first train segment in step 504 may include calculating the trigger distance at step 502. In some alternative embodiments, the trigger distance may be calculated prior to the performance of step 504 of the method rather than as part of step 504. In either case, the trigger distance may be calculated based on, for example, the speed of the train and/or a safe rate of acceleration of the first train segment. The trigger distance may be calculated by a processor embedded in the modular train system and/or by a processor embedded in the train. In some embodiments, the trigger distance may be calculated in response to a signal, which indicates that the train is present at a given location along the track. In some embodiments, the trigger distance may be calculated in response to reaching a given time on a schedule. Determining that the train has approached to within the trigger distance from the first train segment may also be referred to as “identifying an upcoming acceleration event.”

Once it has been determined that the train has approached to within a trigger distance from the first train segment, the method 500 may proceed with step 508, wherein the doors of the first train segment are caused to be closed. In some embodiments, causing the doors of the train segment to close may include sending a close door signal to a motor controller at step 510 and/or sending a lock door signal to a motor controller at step 512. In embodiments wherein a close door signal is sent to a motor controller, the motor controller is configured to control a motor included in the first train segment, and the motor is configured to close a door of the first train segment. In embodiments wherein a lock door signal is sent to a motor controller, the motor controller is configured to control a motor included in the first train segment, and the motor is configured to lock a door of the first train segment.

In some embodiments, it is possible to proceed to step 516 of the method without performing step 508. For example, in embodiments wherein the train segment is used to transport cargo and/or does not include doors, once it has been determined that a train has approached to within a trigger distance from a first train segment at step 504, the method 500 may proceed with step 516, wherein the first train segment is caused to accelerate. In some embodiments, causing the first train segment to accelerate may include sending an acceleration signal to a motor controller at step 518. In embodiments wherein an acceleration signal is sent to a motor controller, the motor controller is configured to control a motor included in the first train segment, and the motor is configured to propel the first train segment along the tracks.

In some embodiments, causing the first train segment to accelerate includes accelerating the first train segment to a velocity that is approximately the same as the velocity at which the train is traveling. In other words, causing the first train segment to accelerate may include causing the first train segment to accelerate to approximately the first velocity. Accelerating the first train segment to approximately the first velocity is performed such that the train catches up with the first train segment, and when the train catches up with the first train segment, both the first train segment and the train are traveling at approximately the first velocity. Accordingly, the acceleration of the first train segment may be precisely timed and controlled such that the first train segment achieves approximately the first velocity at approximately the same time as the train catches up with the first train segment. This precise timing and control prevents collisions between the first train segment and the train.

Once the first train segment has been accelerated to approximately the first velocity and the train has caught up with the first train segment, the method may proceed to step 522, wherein the first train segment is coupled to a front end of the train. In some embodiments, causing the first train segment to couple to the front end of the train may include sending a coupling signal to a motor controller at step 524. In embodiments wherein a coupling signal is sent to a motor controller, the motor controller is configured to control a motor included in the first train segment, and the motor is configured to couple the first train segment to the train.

Referring now to FIG. 6, illustrated is a flowchart of an example method 600 for operating a modular train system such as, for example, modular train system 300 described above with reference to FIGS. 3A-3D and/or modular train system 400 described above with reference to FIGS. 4A-4E, in accordance with embodiments of the present disclosure. The method 600 may be performed by hardware, firmware, software executing on a processor, or any combination thereof. For example, any or all of the steps of the method 600 may be performed by one or more controllers (e.g., a processor) embedded in the modular train system.

The method 600 may begin at step 604, wherein it is determined that a second train segment is at the rear end of a train. The train is made up of multiple train segments and has a first velocity in a first direction along a track. The second train segment is arranged at the rear end of the train. For example, in some embodiments, the second train segment may be determined to be at a rear end of the train by a sensor, which indicates that there is no further train segment coupled to the rear end of the second train segment.

Once it has been determined that the second train segment is at the rear end of the train, the method 600 may proceed with step 608, wherein it is determined that the train has approached to within a threshold distance away from a next station. Determining that the train has approached to within a threshold distance from the next station in step 608 may include calculating the threshold distance in step 610. In some alternative embodiments, the threshold distance may be calculated prior to the performance of step 608 of the method rather than as part of step 608. In either case, the threshold distance may be calculated based on, for example, the speed of the train and/or a safe rate of deceleration of the second train segment. The threshold distance may be calculated by a processor embedded in the modular train system and/or by a processor embedded in the train. In some embodiments, the threshold distance may be calculated in response to a signal, which indicates that the train is present at a given location along the track. In some embodiments, the threshold distance may be calculated in response to reaching a given time on a schedule. Determining that the train has approached to within the threshold distance from the next station may also be referred to as “identifying an upcoming deceleration event.”

Once it has been determined that the train has approached to within a threshold distance from the next station, the method 600 may proceed with step 614, wherein the second train segment is caused to be decoupled from the rear end of the train. In some embodiments, causing the second train segment to be decoupled from the rear end of the train may include sending a decoupling signal to a motor controller at step 616. In embodiments wherein a decoupling signal is sent to a motor controller, the motor controller is configured to control a motor included in the second train segment, and the motor is configured to decouple the second train segment from the train.

Once the second train segment has been decoupled from the train, it is possible to proceed to step 620 of the method, wherein the second train segment is caused to decelerate. In some embodiments, causing the second train segment to decelerate may include sending a deceleration signal to a motor controller at step 622. In embodiments wherein a deceleration signal is sent to a motor controller, the motor controller is configured to control a motor included in the second train segment, and the motor is configured to reduce the speed of the second train segment along the tracks.

In some embodiments, causing the second train segment to decelerate includes decelerating the second train segment such that the second train segment comes to a stop, wherein the second train segment has zero velocity, when the second train segment arrives at the next station. Accordingly, the deceleration of the second train segment may be precisely timed and controlled such that the second train segment comes to a stop at approximately the same time that the second train segment arrives at the station. This precise timing and control prevents the second train segment from stopping too soon before reaching the station and from passing the station before stopping.

In some embodiments, once the second train segment has been decelerated to a stop, the method may proceed to step 626, wherein the doors of the second train segment are caused to be opened. In some embodiments, causing the doors of the train segment to be opened includes sending an unlock door signal to a motor controller at step 628 and/or sending an open door signal to a motor controller at step 630. In embodiments wherein an unlock door signal is sent to a motor controller, the motor controller is configured to control a motor included in the second train segment, and the motor is configured to unlock a door of the second train segment. In embodiments wherein an open door signal is sent to a motor controller, the motor controller is configured to control a motor included in the second train segment, and the motor is configured to open a door of the second train segment. In some embodiments, performance of step 626 is not necessary. For example, in embodiments wherein the train segment is used to transport cargo and/or does not include doors, once it has been determined that the second train segment has come to a stop, the method 600 may be complete.

In some embodiments of the present disclosure, the method 500 may be performed prior to the method 600. For example, a first train segment may be added to the front end of a train at one station and a second train segment may be removed from the rear end of the train at a subsequent station. Alternatively, the method 600 may be performed prior to the method 500. For example, a second train segment may be removed from the rear end of a train at one station and a first train segment may be added to the front end of a train at a subsequent station. Alternatively, the methods 500 and 600 may be performed at overlapping times or simultaneously. For example, a first train segment may be added to the front end of a train and a second train segment may be removed from the rear end of the train at the same station.

Additionally, or alternatively, each of the methods 500 and 600 may be performed repeatedly. For example, train segments may be added to the front end of the train at successive stations such that a first train segment that is added to the front end of a train is no longer at the front end of the train after additional train segments have been added in front of it. Additionally, or alternatively, as train segments are removed from the rear end of the train, a first train segment that was added to the front end of a train may eventually become a second train segment that is at the rear end of the train.

Referring now to FIG. 7, shown is a high-level block diagram of an example computer system 701 that may be used in implementing one or more of the methods, tools, and modules, and any related functions, described herein (e.g., using one or more processor circuits or computer processors of the computer), in accordance with embodiments of the present disclosure. In some embodiments, the major components of the computer system 701 may comprise one or more CPUs 702, a memory subsystem 704, a terminal interface 712, a storage interface 716, an I/O (Input/Output) device interface 714, and a network interface 718, all of which may be communicatively coupled, directly or indirectly, for inter-component communication via a memory bus 703, an I/O bus 708, and an I/O bus interface unit 710.

The computer system 701 may contain one or more general-purpose programmable central processing units (CPUs) 702A, 702B, 702C, and 702D, herein generically referred to as the CPU 702. In some embodiments, the computer system 701 may contain multiple processors typical of a relatively large system; however, in other embodiments the computer system 701 may alternatively be a single CPU system. Each CPU 702 may execute instructions stored in the memory subsystem 704 and may include one or more levels of on-board cache.

System memory 704 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 722 or cache memory 724. Computer system 701 may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system 726 can be provided for reading from and writing to a non-removable, non-volatile magnetic media, such as a “hard drive.” Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), or an optical disk drive for reading from or writing to a removable, non-volatile optical disc such as a CD-ROM, DVD-ROM or other optical media can be provided. In addition, memory 704 can include flash memory, e.g., a flash memory stick drive or a flash drive. Memory devices can be connected to memory bus 703 by one or more data media interfaces. The memory 704 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of various embodiments.

One or more programs/utilities 728, each having at least one set of program modules 730 may be stored in memory 704. The programs/utilities 728 may include a hypervisor (also referred to as a virtual machine monitor), one or more operating systems, one or more application programs, other program modules, and program data. Each of the operating systems, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules 730 generally perform the functions or methodologies of various embodiments.

Although the memory bus 703 is shown in FIG. 7 as a single bus structure providing a direct communication path among the CPUs 702, the memory subsystem 704, and the I/O bus interface 710, the memory bus 703 may, in some embodiments, include multiple different buses or communication paths, which may be arranged in any of various forms, such as point-to-point links in hierarchical, star or web configurations, multiple hierarchical buses, parallel and redundant paths, or any other appropriate type of configuration. Furthermore, while the I/O bus interface 710 and the I/O bus 708 are shown as single respective units, the computer system 701 may, in some embodiments, contain multiple I/O bus interface units 710, multiple I/O buses 708, or both. Further, while multiple I/O interface units are shown, which separate the I/O bus 708 from various communications paths running to the various I/O devices, in other embodiments some or all of the I/O devices may be connected directly to one or more system I/O buses.

In some embodiments, the computer system 701 may be a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little or no direct user interface but receives requests from other computer systems (clients). Further, in some embodiments, the computer system 701 may be implemented as a desktop computer, portable computer, laptop or notebook computer, tablet computer, pocket computer, telephone, smart phone, network switches or routers, or any other appropriate type of electronic device.

It is noted that FIG. 7 is intended to depict the representative major components of an exemplary computer system 701. In some embodiments, however, individual components may have greater or lesser complexity than as represented in FIG. 7, components other than or in addition to those shown in FIG. 7 may be present, and the number, type, and configuration of such components may vary.

It is understood in advance that although this disclosure includes a detailed description on cloud computing, implementation of the teachings recited herein are not limited to a cloud computing environment. Rather, embodiments of the present invention are capable of being implemented in conjunction with any other type of computing environment now known or later developed.

Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g. networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

Characteristics are as follows:

On-demand self-service: a cloud consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with the service's provider.

Broad network access: capabilities are available over a network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Resource pooling: the provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to demand. There is a sense of location independence in that the consumer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter).

Rapid elasticity: capabilities can be rapidly and elastically provisioned, in some cases automatically, to quickly scale out and rapidly released to quickly scale in. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be purchased in any quantity at any time.

Measured service: cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported providing transparency for both the provider and consumer of the utilized service.

Service Models are as follows:

Software as a Service (SaaS): the capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based e-mail). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

Platform as a Service (PaaS): the capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations.

Infrastructure as a Service (IaaS): the capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls).

Deployment Models are as follows:

Private cloud: the cloud infrastructure is operated solely for an organization. It may be managed by the organization or a third party and may exist on-premises or off-premises.

Community cloud: the cloud infrastructure is shared by several organizations and supports a specific community that has shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be managed by the organizations or a third party and may exist on-premises or off-premises.

Public cloud: the cloud infrastructure is made available to the general public or a large industry group and is owned by an organization selling cloud services.

Hybrid cloud: the cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load-balancing between clouds).

A cloud computing environment is service oriented with a focus on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure comprising a network of interconnected nodes.

Referring now to FIG. 8, illustrative cloud computing environment 50 is depicted. As shown, cloud computing environment 50 comprises one or more cloud computing nodes 10 with which local computing devices used by cloud consumers, such as, for example, personal digital assistant (PDA) or cellular telephone 54A, desktop computer 54B, laptop computer 54C, and/or automobile computer system 54N may communicate. Nodes 10 may communicate with one another. They may be grouped (not shown) physically or virtually, in one or more networks, such as Private, Community, Public, or Hybrid clouds as described hereinabove, or a combination thereof. This allows cloud computing environment 50 to offer infrastructure, platforms and/or software as services for which a cloud consumer does not need to maintain resources on a local computing device. It is understood that the types of computing devices 54A-N shown in FIG. 8 are intended to be illustrative only and that computing nodes 10 and cloud computing environment 50 can communicate with any type of computerized device over any type of network and/or network addressable connection (e.g., using a web browser).

Referring now to FIG. 9, a set of functional abstraction layers provided by cloud computing environment 50 (FIG. 8) is shown. It should be understood in advance that the components, layers, and functions shown in FIG. 9 are intended to be illustrative only and embodiments of the invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:

Hardware and software layer 60 includes hardware and software components. Examples of hardware components include: mainframes 61; RISC (Reduced Instruction Set Computer) architecture based servers 62; servers 63; blade servers 64; storage devices 65; and networks and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.

Virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities may be provided: virtual servers 71; virtual storage 72; virtual networks 73, including virtual private networks; virtual applications and operating systems 74; and virtual clients 75.

In one example, management layer 80 may provide the functions described below. Resource provisioning 81 provides dynamic procurement of computing resources and other resources that are utilized to perform tasks within the cloud computing environment. Metering and Pricing 82 provide cost tracking as resources are utilized within the cloud computing environment, and billing or invoicing for consumption of these resources. In one example, these resources may comprise application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides cloud computing resource allocation and management such that required service levels are met. Service Level Agreement (SLA) planning and fulfillment 85 provide pre-arrangement for, and procurement of, cloud computing resources for which a future requirement is anticipated in accordance with an SLA.

Workloads layer 90 provides examples of functionality for which the cloud computing environment may be utilized. Examples of workloads and functions which may be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analytics processing 94; transaction processing 95; and mobile desktops 96.

In addition to embodiments described above, other embodiments having fewer operational steps, more operational steps, or different operational steps are contemplated. Also, some embodiments may perform some or all of the above operational steps in a different order. Furthermore, multiple operations may occur at the same time or as an internal part of a larger process. The modules are listed and described illustratively according to an embodiment and are not meant to indicate necessity of a particular module or exclusivity of other potential modules (or functions/purposes as applied to a specific module).

In the foregoing, reference is made to various embodiments. It should be understood, however, that this disclosure is not limited to the specifically described embodiments. Instead, any combination of the described features and elements, whether related to different embodiments or not, is contemplated to implement and practice this disclosure. Many modifications and variations may be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. Furthermore, although embodiments of this disclosure may achieve advantages over other possible solutions or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of this disclosure. Thus, the described aspects, features, embodiments, and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s).

The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be accomplished as one step, executed concurrently, substantially concurrently, in a partially or wholly temporally overlapping manner, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the various embodiments. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “includes” and/or “including,” when used in this specification, specify the presence of the stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. In the previous detailed description of example embodiments of the various embodiments, reference was made to the accompanying drawings (where like numbers represent like elements), which form a part hereof, and in which is shown by way of illustration specific example embodiments in which the various embodiments may be practiced. These embodiments were described in sufficient detail to enable those skilled in the art to practice the embodiments, but other embodiments may be used and logical, mechanical, electrical, and other changes may be made without departing from the scope of the various embodiments. In the previous description, numerous specific details were set forth to provide a thorough understanding the various embodiments. But, the various embodiments may be practiced without these specific details. In other instances, well-known circuits, structures, and techniques have not been shown in detail in order not to obscure embodiments.

As used herein, “a number of” when used with reference to items, means one or more items. For example, “a number of different types of networks” is one or more different types of networks.

When different reference numbers comprise a common number followed by differing letters (e.g., 100 a, 100 b, 100 c) or punctuation followed by differing numbers (e.g., 100-1, 100-2, or 100.1, 100.2), use of the reference character only without the letter or following numbers (e.g., 100) may refer to the group of elements as a whole, any subset of the group, or an example specimen of the group.

Further, the phrase “at least one of,” when used with a list of items, means different combinations of one or more of the listed items can be used, and only one of each item in the list may be needed. In other words, “at least one of” means any combination of items and number of items may be used from the list, but not all of the items in the list are required. The item can be a particular object, a thing, or a category.

For example, without limitation, “at least one of item A, item B, or item C” may include item A, item A and item B, or item B. This example also may include item A, item B, and item C or item B and item C. Of course, any combinations of these items can be present. In some illustrative examples, “at least one of” can be, for example, without limitation, two of item A; one of item B; and ten of item C; four of item B and seven of item C; or other suitable combinations.

Different instances of the word “embodiment” as used within this specification do not necessarily refer to the same embodiment, but they may. Any data and data structures illustrated or described herein are examples only, and in other embodiments, different amounts of data, types of data, fields, numbers and types of fields, field names, numbers and types of rows, records, entries, or organizations of data may be used. In addition, any data may be combined with logic, so that a separate data structure may not be necessary. The previous detailed description is, therefore, not to be taken in a limiting sense.

The descriptions of the various embodiments of the present disclosure have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

Although the present invention has been described in terms of specific embodiments, it is anticipated that alterations and modification thereof will become apparent to the skilled in the art. Therefore, it is intended that the following claims be interpreted as covering all such alterations and modifications as fall within the true spirit and scope of the invention. 

1-7. (canceled)
 8. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method comprising: determining that a train has approached to within a trigger distance from a first train segment, the train having a first velocity in a first direction along a track; causing the first train segment to accelerate to approximately the first velocity; and coupling the first train segment to a front end of the train, wherein the coupling is performed while the first train segment and the train are in motion at approximately the first velocity.
 9. The computer program product of claim 8, wherein the method further comprises: determining that a second train segment is at a rear end of the train; determining that the train has approached to within a threshold distance away from a next station; decoupling the second train segment from the rear end of the train; and causing the second train segment to decelerate such that it comes to a stop at the next station.
 10. The computer program product of claim 9, wherein causing the second train segment to decelerate includes sending a deceleration signal to a motor controller to control an electronic motor of the second train segment.
 11. The computer program product of claim 8, wherein causing the first train segment to accelerate includes sending an acceleration signal to a motor controller to control an electronic motor of the first train segment.
 12. The computer program product of claim 8, wherein the method further comprises: causing doors of the first train segment to close prior to causing the first train segment to accelerate, wherein causing the doors of the first train segment to close includes sending a closing signal to a motor controller to control an electronic motor on the first train segment.
 13. The computer program product of claim 12, wherein causing the doors of the first train segment to close further includes sending the closing signal to the motor controller in response to the train approaching within a door trigger distance from the first train segment.
 14. The computer program product of claim 8, wherein the method further comprises calculating the trigger distance based on at least one of the speed of the train and a safe acceleration speed of the first train segment.
 15. A train system comprising: a plurality of train segments; a memory; and a processor communicatively coupled to the memory, wherein the processor is configured to perform a method comprising: determining that a train has approached to within a trigger distance from a first train segment, the train having a first velocity in a first direction along a track; causing the first train segment to accelerate to approximately the first velocity; and coupling the first train segment to a front end of the train, wherein the coupling is performed while the first train segment and the train are in motion at approximately the first velocity.
 16. The train system of claim 15, wherein the method further comprises: determining that a second train segment is at a rear end of the train; determining that the train has approached to within a threshold distance away from a next station; decoupling the second train segment from the rear end of the train; and causing the second train segment to decelerate such that it comes to a stop at the next station.
 17. The train system of claim 16, wherein causing the second train segment to decelerate includes sending a deceleration signal to a motor controller to control an electronic motor of the second train segment.
 18. The train system of claim 15, wherein causing the first train segment to accelerate includes sending an acceleration signal to a motor controller to control an electronic motor of the first train segment.
 19. The train system of claim 15, wherein the method further comprises causing doors of the first train segment to close prior to causing the first train segment to accelerate, wherein causing the doors of the first train segment to close includes sending a closing signal to a motor controller to control an electronic motor on the first train segment.
 20. The train system of claim 19, wherein causing the doors of the first train segment to close further includes sending the closing signal to the motor controller in response to the train approaching within a door trigger distance from the first train segment. 